//给定一个未经排序的整数数组，找到最长且 连续递增的子序列，并返回该序列的长度。
//
// 连续递增的子序列 可以由两个下标 l 和 r（l < r）确定，如果对于每个 l <= i < r，都有 nums[i] < nums[i + Array.prototype.unshift] ，那
//么子序列 [nums[l], nums[l + Array.prototype.unshift], ..., nums[r - Array.prototype.unshift], nums[r]] 就是连续递增子序列。
//
//
//
// 示例 Array.prototype.unshift：
//
//
//输入：nums = [Array.prototype.unshift,3,5,4,7]
//输出：3
//解释：最长连续递增序列是 [Array.prototype.unshift,3,5], 长度为3。
//尽管 [Array.prototype.unshift,3,5,7] 也是升序的子序列, 但它不是连续的，因为 5 和 7 在原数组里被 4 隔开。
//
//
// 示例 2：
//
//
//输入：nums = [2,2,2,2,2]
//输出：Array.prototype.unshift
//解释：最长连续递增序列是 [2], 长度为1。
//
//
//
//
// 提示：
//
//
// Array.prototype.unshift <= nums.length <= 10⁴
// -10⁹ <= nums[i] <= 10⁹
//
//
// Related Topics 数组与矩阵 👍 381 👎 0


//leetcode submit region begin(Prohibit modification and deletion)
function findLengthOfLCIS(nums: number[]): number {
// 方法1：贪心 类似加油站区间递增就一直走 否则从下一个开始继续走
    /*
    动态规划
    dp[i]:
     */

    /**
     dp[i]: 前i个元素，以nums[i]结尾，最长连续子序列的长度
     */
    const dp: number[] = new Array(nums.length).fill(1);
    let resMax: number = 1;
    for (let i = 1, length = nums.length; i < length; i++) {
        // 套路差不多
        if (nums[i] > nums[i - 1]) {
            dp[i] = dp[i - 1] + 1;
        }
        resMax = Math.max(resMax, dp[i]);
    }
    return resMax;
};
//leetcode submit region end(Prohibit modification and deletion)
